//! MySQL配置示例测试
//! 演示如何使用配置文件进行数据库测试

/// 测试MySQL配置加载
#[test]
fn test_mysql_config_loading() {
    // 加载测试配置
    let config_content = std::fs::read_to_string("tests/config/test_config.toml")
        .expect("Failed to read test_config.toml");
    
    let config: toml::Value = toml::from_str(&config_content)
        .expect("Failed to parse test_config.toml");
    
    // 验证配置文件结构
    assert!(config.get("database").is_some());
    assert!(config.get("test").is_some());
    assert!(config.get("features").is_some());
    
    // 验证MySQL配置
    let mysql_config = config.get("database").unwrap().get("mysql").unwrap();
    assert_eq!(mysql_config.get("host").unwrap().as_str().unwrap(), "localhost");
    assert_eq!(mysql_config.get("port").unwrap().as_integer().unwrap(), 13308);
    assert_eq!(mysql_config.get("database").unwrap().as_str().unwrap(), "benckmark");
    
    println!("MySQL配置加载成功: {:?}", mysql_config);
}

/// 测试条件运行数据库测试
#[test]
fn test_conditional_database_testing() {
    // 加载测试配置
    let config_content = std::fs::read_to_string("tests/config/test_config.toml")
        .expect("Failed to read test_config.toml");
    
    let config: toml::Value = toml::from_str(&config_content)
        .expect("Failed to parse test_config.toml");
    
    // 检查是否启用数据库测试
    let database_enabled = config.get("database").unwrap().get("enabled").unwrap().as_bool().unwrap();
    
    if database_enabled {
        println!("数据库测试已启用");
        // 这里可以添加实际的数据库测试逻辑
    } else {
        println!("数据库测试已禁用，跳过测试");
        // 在实际的数据库测试中，我们会在这里返回或跳过
    }
    
    // 验证配置读取成功 - 根据实际配置文件中的设置进行断言
    assert_eq!(database_enabled, true); // 配置文件中数据库测试是启用的
}